/**
 * @Author: Sagan
 * @Date: 2020/09/24 20:52
 */
package module

import (
	"gitee.com/big_meteor/godash/lang"
	"gitee.com/big_meteor/godash/validate/constant"
	"gitee.com/big_meteor/godash/validate/function"
	"reflect"
)

// 是否为汉字
// 支持的类型：string
func Chs(v interface{}) (bool, error) {
	var kind reflect.Kind
	v, kind = lang.GetValue(v)

	if reflect.String != kind {
		return false, constant.ERROR_CHS_UDT
	}

	return function.Chs(v.(string)), nil
}

// 是否为汉字、数字
// 支持的类型：string
func ChsNum(v interface{}) (bool, error) {
	var kind reflect.Kind
	v, kind = lang.GetValue(v)

	if reflect.String != kind {
		return false, constant.ERROR_CHS_NUM_UDT
	}

	return function.ChsNum(v.(string)), nil
}

// 是否为汉字、字母
// 支持的类型：string
func ChsAlpha(v interface{}) (bool, error) {
	var kind reflect.Kind
	v, kind = lang.GetValue(v)

	if reflect.String != kind {
		return false, constant.ERROR_CHS_ALPHA_UDT
	}

	return function.ChsAlpha(v.(string)), nil
}

// 是否为汉字、字母和数字
// 支持的类型：string
func ChsAlphaNum(v interface{}) (bool, error) {
	var kind reflect.Kind
	v, kind = lang.GetValue(v)

	if reflect.String != kind {
		return false, constant.ERROR_CHS_ALPHA_NUM_UDT
	}

	return function.ChsAlphaNum(v.(string)), nil
}

// 是否为汉字、字母、数字和下划线_及破折号-
// 支持的类型：string
func ChsDash(v interface{}) (bool, error) {
	var kind reflect.Kind
	v, kind = lang.GetValue(v)

	if reflect.String != kind {
		return false, constant.ERROR_CHS_DASH_UDT
	}

	return function.ChsDash(v.(string)), nil
}
